Satellite navigation systems, such as GPS (USA) and GLONASS (Russia), are intended for high accuracy self-positioning of different users possessing special navigation receivers. A navigation receiver receives and processes radio signals broadcasted by satellites located within line-of-sight distance. The satellite signals comprise carrier signals that are modulated by pseudo-random binary codes, which are then used to measure the delay relative to local reference clock or oscillator. These measurements enable one to determine the so-called pseudo-ranges (γ) between the receiver and the satellites. The pseudo-ranges are different from true ranges (D, distances) between the receiver and the satellites due to variations in the time scales of the satellites and receiver and various noise sources. To produce these time scales, each satellite has its own on-board atomic clock, and the receiver has its own on-board clock, which usually comprises a quartz crystal. If the number of satellites is large enough (more than four), then the measured pseudo-ranges can be processed to determine the user location (e.g., X, Y, and Z coordinates) and to reconcile the variations in the time scales. Finding the user location by this process is often referred to as solving a navigational problem or task.
The necessity to guarantee the solution of navigational tasks with accuracy better than 10 meters, and the desire to raise the stability and reliability of measurements, have led to the development of the mode of “differential navigation ranging,” also called “differential navigation” (DN). In the DN mode, the task of finding the user position is performed relative to a Base station (Base), the coordinates of which are known with the high accuracy and precision. The Base station has a navigation receiver that receives the signals of the satellites and processes them to generate measurements. The results of these measurements enable one to calculate corrections, which are then transmitted to the user that also uses a navigation receiver. By using these corrections, the user obtains the ability to compensate for the major part of the strongly correlated errors in the measured pseudo-ranges, and to substantially improve the accuracy of his or her positioning.
Usually, the Base station is immobile during measurements. The user may be either immobile or mobile. We will call such a user “the Rover.” The location coordinates of a moving Rover are continuously changing, and should be referenced to a time scale.
Depending on the navigational tasks to be solved, different modes of operation may be used in the DN mode. They differ in the way in which the measurement results are transmitted from the Base to the Rover. In the Post-processing (PP) mode, these results are transmitted as digital recordings and go to the user after all the measurements have been finished. In the PP mode, the user reconstructs his or her location for definite time moments in the past.
Another mode is the Real-Time Processing (RTP) mode, and it provides for the positioning of the Rover receiver just during the measurements. The RTP mode uses a communication link (usually it is a radio communication link), through which all the necessary information is transmitted from the Base to the Rover receiver in digital form.
Further improvement of accuracy of differential navigation may be reached by supplementing the measurements of the pseudoranges with the measurements of the phases of the satellite carrier signals. If one measures the carrier phase of the signal received from a satellite in the Base receiver and compares it with the carrier phase of the same satellite measured in the Rover receiver, one can obtain measurement accuracy to within several percent of the carrier's wavelength, i.e., to within several centimeters.
The practical implementation of those advantages, which might be guaranteed by the measurement of the carrier phases, runs into the problem of there being ambiguities in the phase measurements.
The ambiguities are caused by two factors. First, the difference of distances ΔD from any satellite to the Base and Rover is much greater than the carrier's wavelength λ. Therefore, the difference in the phase delays of a carrier signal Δφ=ΔD/λ received by the Base and Rover receivers exceeds several cycles. Second, it is not possible to measure the integer number of cycles in Δφ from the incoming satellite signals; one can only measure the fractional part of Δφ. Therefore, it is necessary to determine the integer part of Δφ, which is called the “ambiguity”.
More precisely, we need to determine the set of all such integer parts for all the satellites being tracked, one integer part for each satellite. One has to determine this set along with other unknown values, which include the Rover's coordinates and the variations in the time scales.
In a general way, the task of generating highly-accurate navigation measurements is formulated as follows: one determines the state vector of a system, with the vector containing nΣ unknown components. Those include three Rover coordinates (usually along Cartesian axes X, Y, Z) in a given coordinate system (sometimes time derivatives of coordinates are added too); the variations of the time scales which is caused by the phase drift of the local main reference oscillator; and n integer unknown values associated with the ambiguities of the phase measurements of the carrier frequencies. The value of n is determined by the number of different carrier signals being processed, and accordingly coincides with the number of satellite channels actively functioning in the receiver. At least one satellite channel is used for each satellite whose broadcast signals are being received and processed by the receiver. Some satellites broadcast more than one code-modulated carrier signal, such as a GPS satellite that broadcasts a carrier in the L1 frequency band and a carrier in the L2 frequency band. If the receiver processes the carrier signals in both of the L1 and L2 bands, the number of satellite channels (n) increases correspondingly.
Two sets of navigation parameters are measured by the Base and Rover receivers, respectively, and are used to determine the unknown state vector. Each set of parameters includes the pseudo-range of each satellite to the receiver, and the full (complete) phase of each satellite carrier signal, the latter of which may contain ambiguities. Each pseudo-range is obtained by measuring the time delay of a code modulation signal of the corresponding satellite. The code modulation signal is tracked by a delay-lock loop (DLL) circuit in each satellite-tracking channel. The full phase of a satellite's carrier signal is tracked by phase counter (as described below) with input from a phase-lock-loop (PLL) in the corresponding satellite tracking channel (an example of which is described below in greater detail). An observation vector is generated as the collection of the measured navigation parameters for specific (definite) moments of time.
The relationship between the state vector and the observation vector is defined by a well-known system of navigation equations. Given an observation vector, the system of equations may be solved to find the state vector if the number of equations equals or exceeds the number of unknowns in the state vector. In the latter case, conventional statistical methods are used to solve the system: the least-squares method, the method of dynamic Kalman filtering, and various modifications of these methods.
Practical implementations of these methods in digital form may vary widely. In implementing or developing such a method on a processor, one usually must find a compromise between the accuracy of the results and speed of obtaining results for a given amount of processor capability, while not exceeding a certain amount of loading on the processor. The present invention is directed to novel methods and apparatuses for accelerating the obtaining of reliable estimates for the integer ambiguities at an acceptable processor load.
More particularly, the present invention is directed to novel methods and apparatuses for more quickly obtaining such estimates in floating-point form (non-integer form) which are close to the integer values. With these floating-point forms, which we call floating ambiguities, conventional methods may be used to derive the corresponding integer ambiguities.